home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1997 October: Mac OS SDK / Dev.CD Oct 97 SDK1.toast / Development Kits (Disc 1) / Interfaces&Libraries / Universal / Interfaces / PInterfaces / Connections.p < prev    next >
Encoding:
Text File  |  1997-08-12  |  11.2 KB  |  333 lines  |  [TEXT/MPS ]

  1. {
  2.      File:        Connections.p
  3.  
  4.      Contains:    Communications Toolbox Connection Manager Interfaces.
  5.  
  6.      Version:    Technology:    System 7.5
  7.                  Release:    Universal Interfaces 3.0.1
  8.  
  9.      Copyright:    © 1988-1997 by Apple Computer, Inc., all rights reserved
  10.  
  11.      Bugs?:        Please include the the file and version information (from above) with
  12.                  the problem description.  Developers belonging to one of the Apple
  13.                  developer programs can submit bug reports to:
  14.  
  15.                      devsupport@apple.com
  16.  
  17. }
  18. {$IFC UNDEFINED UsingIncludes}
  19. {$SETC UsingIncludes := 0}
  20. {$ENDC}
  21.  
  22. {$IFC NOT UsingIncludes}
  23.  UNIT Connections;
  24.  INTERFACE
  25. {$ENDC}
  26.  
  27. {$IFC UNDEFINED __CONNECTIONS__}
  28. {$SETC __CONNECTIONS__ := 1}
  29.  
  30. {$I+}
  31. {$SETC ConnectionsIncludes := UsingIncludes}
  32. {$SETC UsingIncludes := 1}
  33.  
  34. {$IFC UNDEFINED __CONDITIONALMACROS__}
  35. {$I ConditionalMacros.p}
  36. {$ENDC}
  37. {$IFC UNDEFINED __TYPES__}
  38. {$I Types.p}
  39. {$ENDC}
  40. {$IFC UNDEFINED __MIXEDMODE__}
  41. {$I MixedMode.p}
  42. {$ENDC}
  43. {$IFC UNDEFINED __DIALOGS__}
  44. {$I Dialogs.p}
  45. {$ENDC}
  46.  
  47.  
  48. {$PUSH}
  49. {$ALIGN MAC68K}
  50. {$LibExport+}
  51.  
  52.  
  53. CONST
  54.     curCMVersion                = 2;                            {  current Connection Manager version }
  55.  
  56.     curConnEnvRecVers            = 0;                            {     current Connection Manager Environment Record version }
  57.  
  58.                                                                 {  CMErr  }
  59.     cmGenericError                = -1;
  60.     cmNoErr                        = 0;
  61.     cmRejected                    = 1;
  62.     cmFailed                    = 2;
  63.     cmTimeOut                    = 3;
  64.     cmNotOpen                    = 4;
  65.     cmNotClosed                    = 5;
  66.     cmNoRequestPending            = 6;
  67.     cmNotSupported                = 7;
  68.     cmNoTools                    = 8;
  69.     cmUserCancel                = 9;
  70.     cmUnknownError                = 11;
  71.  
  72.  
  73. TYPE
  74.     CMErr                                = OSErr;
  75.  
  76.  
  77. CONST
  78.     cmData                        = $00000001;
  79.     cmCntl                        = $00000002;
  80.     cmAttn                        = $00000004;
  81.     cmDataNoTimeout                = $00000010;
  82.     cmCntlNoTimeout                = $00000020;
  83.     cmAttnNoTimeout                = $00000040;
  84.     cmDataClean                    = $00000100;
  85.     cmCntlClean                    = $00000200;
  86.     cmAttnClean                    = $00000400;                    {         Only for CMRecFlags (not CMChannel) in the rest of this enum     }
  87.     cmNoMenus                    = $00010000;
  88.     cmQuiet                        = $00020000;
  89.     cmConfigChanged                = $00040000;
  90.  
  91. { CMRecFlags and CMChannel        }
  92. {        Low word of CMRecFlags is same as CMChannel    }
  93.  
  94. TYPE
  95.     CMRecFlags                            = LONGINT;
  96.     CMChannel                            = INTEGER;
  97.  
  98.  
  99.  
  100. CONST
  101.     cmStatusOpening                = $00000001;
  102.     cmStatusOpen                = $00000002;
  103.     cmStatusClosing                = $00000004;
  104.     cmStatusDataAvail            = $00000008;
  105.     cmStatusCntlAvail            = $00000010;
  106.     cmStatusAttnAvail            = $00000020;
  107.     cmStatusDRPend                = $00000040;                    {  data read pending     }
  108.     cmStatusDWPend                = $00000080;                    {  data write pending     }
  109.     cmStatusCRPend                = $00000100;                    {  cntl read pending     }
  110.     cmStatusCWPend                = $00000200;                    {  cntl write pending     }
  111.     cmStatusARPend                = $00000400;                    {  attn read pending     }
  112.     cmStatusAWPend                = $00000800;                    {  attn write pending     }
  113.     cmStatusBreakPend            = $00001000;
  114.     cmStatusListenPend            = $00002000;
  115.     cmStatusIncomingCallPresent    = $00004000;
  116.     cmStatusReserved0            = $00008000;
  117.  
  118.  
  119. TYPE
  120.     CMStatFlags                            = LONGINT;
  121.  
  122. CONST
  123.     cmDataIn                    = 0;
  124.     cmDataOut                    = 1;
  125.     cmCntlIn                    = 2;
  126.     cmCntlOut                    = 3;
  127.     cmAttnIn                    = 4;
  128.     cmAttnOut                    = 5;
  129.     cmRsrvIn                    = 6;
  130.     cmRsrvOut                    = 7;
  131.  
  132.  
  133. TYPE
  134.     CMBufFields                            = INTEGER;
  135.     CMBuffers                            = ARRAY [0..7] OF Ptr;
  136.     CMBufferSizes                        = ARRAY [0..7] OF LONGINT;
  137.  
  138. CONST
  139.     cmSearchSevenBit            = $00000001;
  140.  
  141.  
  142. TYPE
  143.     CMSearchFlags                        = INTEGER;
  144.  
  145. CONST
  146.     cmFlagsEOM                    = $00000001;
  147.  
  148.  
  149. TYPE
  150.     CMFlags                                = INTEGER;
  151.     ConnEnvironRecPtr = ^ConnEnvironRec;
  152.     ConnEnvironRec = RECORD
  153.         version:                INTEGER;
  154.         baudRate:                LONGINT;
  155.         dataBits:                INTEGER;
  156.         channels:                CMChannel;
  157.         swFlowControl:            BOOLEAN;
  158.         hwFlowControl:            BOOLEAN;
  159.         flags:                    CMFlags;
  160.     END;
  161.  
  162.     ConnRecordPtr = ^ConnRecord;
  163.     ConnPtr                                = ^ConnRecord;
  164.     ConnHandle                            = ^ConnPtr;
  165.     ConnectionToolDefProcPtr = ProcPtr;  { FUNCTION ConnectionToolDef(hConn: ConnHandle; msg: INTEGER; p1: LONGINT; p2: LONGINT; p3: LONGINT): LONGINT; }
  166.  
  167.     ConnectionSearchCallBackProcPtr = ProcPtr;  { PROCEDURE ConnectionSearchCallBack(hConn: ConnHandle; matchPtr: Ptr; refNum: LONGINT); }
  168.  
  169.     ConnectionCompletionProcPtr = ProcPtr;  { PROCEDURE ConnectionCompletion(hConn: ConnHandle); }
  170.  
  171.     ConnectionChooseIdleProcPtr = ProcPtr;  { PROCEDURE ConnectionChooseIdle; }
  172.  
  173.     ConnectionToolDefUPP = UniversalProcPtr;
  174.     ConnectionSearchCallBackUPP = UniversalProcPtr;
  175.     ConnectionCompletionUPP = UniversalProcPtr;
  176.     ConnectionChooseIdleUPP = UniversalProcPtr;
  177.     ConnRecord = RECORD
  178.         procID:                    INTEGER;
  179.         flags:                    CMRecFlags;
  180.         errCode:                CMErr;
  181.         refCon:                    LONGINT;
  182.         userData:                LONGINT;
  183.         defProc:                ConnectionToolDefUPP;
  184.         config:                    Ptr;
  185.         oldConfig:                Ptr;
  186.         asyncEOM:                LONGINT;
  187.         reserved1:                LONGINT;
  188.         reserved2:                LONGINT;
  189.         cmPrivate:                Ptr;
  190.         bufferArray:            CMBuffers;
  191.         bufSizes:                CMBufferSizes;
  192.         mluField:                LONGINT;
  193.         asyncCount:                CMBufferSizes;
  194.     END;
  195.  
  196.  
  197. CONST
  198.                                                                 {  CMIOPB constants and structure  }
  199.     cmIOPBQType                    = 10;
  200.     cmIOPBversion                = 0;
  201.  
  202.  
  203. TYPE
  204.     CMIOPBPtr = ^CMIOPB;
  205.     CMIOPB = RECORD
  206.         qLink:                    QElemPtr;
  207.         qType:                    INTEGER;                                {  cmIOPBQType  }
  208.         hConn:                    ConnHandle;
  209.         theBuffer:                Ptr;
  210.         count:                    LONGINT;
  211.         flags:                    CMFlags;
  212.         userCompletion:            ConnectionCompletionUPP;
  213.         timeout:                LONGINT;
  214.         errCode:                CMErr;
  215.         channel:                CMChannel;
  216.         asyncEOM:                LONGINT;
  217.         reserved1:                LONGINT;
  218.         reserved2:                INTEGER;
  219.         version:                INTEGER;                                {  cmIOPBversion  }
  220.         refCon:                    LONGINT;                                {  for application  }
  221.         toolData1:                LONGINT;                                {  for tool  }
  222.         toolData2:                LONGINT;                                {  for tool  }
  223.     END;
  224.  
  225.  
  226. CONST
  227.     uppConnectionToolDefProcInfo = $0000FEF0;
  228.     uppConnectionSearchCallBackProcInfo = $00000FC0;
  229.     uppConnectionCompletionProcInfo = $000000C0;
  230.     uppConnectionChooseIdleProcInfo = $00000000;
  231.  
  232. FUNCTION CallConnectionToolDefProc(hConn: ConnHandle; msg: INTEGER; p1: LONGINT; p2: LONGINT; p3: LONGINT; userRoutine: ConnectionToolDefUPP): LONGINT;
  233.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  234.     INLINE $205F, $4E90;
  235.     {$ENDC}
  236.  
  237. PROCEDURE CallConnectionSearchCallBackProc(hConn: ConnHandle; matchPtr: Ptr; refNum: LONGINT; userRoutine: ConnectionSearchCallBackUPP);
  238.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  239.     INLINE $205F, $4E90;
  240.     {$ENDC}
  241.  
  242. PROCEDURE CallConnectionCompletionProc(hConn: ConnHandle; userRoutine: ConnectionCompletionUPP);
  243.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  244.     INLINE $205F, $4E90;
  245.     {$ENDC}
  246.  
  247. PROCEDURE CallConnectionChooseIdleProc(userRoutine: ConnectionChooseIdleUPP);
  248.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  249.     INLINE $205F, $4E90;
  250.     {$ENDC}
  251.  
  252. FUNCTION NewConnectionToolDefProc(userRoutine: ConnectionToolDefProcPtr): ConnectionToolDefUPP;
  253.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  254.     INLINE $2E9F;
  255.     {$ENDC}
  256.  
  257. FUNCTION NewConnectionSearchCallBackProc(userRoutine: ConnectionSearchCallBackProcPtr): ConnectionSearchCallBackUPP;
  258.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  259.     INLINE $2E9F;
  260.     {$ENDC}
  261.  
  262. FUNCTION NewConnectionCompletionProc(userRoutine: ConnectionCompletionProcPtr): ConnectionCompletionUPP;
  263.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  264.     INLINE $2E9F;
  265.     {$ENDC}
  266.  
  267. FUNCTION NewConnectionChooseIdleProc(userRoutine: ConnectionChooseIdleProcPtr): ConnectionChooseIdleUPP;
  268.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  269.     INLINE $2E9F;
  270.     {$ENDC}
  271.  
  272.  
  273. FUNCTION InitCM: CMErr;
  274. FUNCTION CMGetVersion(hConn: ConnHandle): Handle;
  275. FUNCTION CMGetCMVersion: INTEGER;
  276. FUNCTION CMNew(procID: INTEGER; flags: CMRecFlags; VAR desiredSizes: CMBufferSizes; refCon: LONGINT; userData: LONGINT): ConnHandle;
  277. PROCEDURE CMDispose(hConn: ConnHandle);
  278. FUNCTION CMListen(hConn: ConnHandle; async: BOOLEAN; completor: ConnectionCompletionUPP; timeout: LONGINT): CMErr;
  279. FUNCTION CMAccept(hConn: ConnHandle; accept: BOOLEAN): CMErr;
  280. FUNCTION CMOpen(hConn: ConnHandle; async: BOOLEAN; completor: ConnectionCompletionUPP; timeout: LONGINT): CMErr;
  281. FUNCTION CMClose(hConn: ConnHandle; async: BOOLEAN; completor: ConnectionCompletionUPP; timeout: LONGINT; now: BOOLEAN): CMErr;
  282. FUNCTION CMAbort(hConn: ConnHandle): CMErr;
  283. FUNCTION CMStatus(hConn: ConnHandle; VAR sizes: CMBufferSizes; VAR flags: CMStatFlags): CMErr;
  284. PROCEDURE CMIdle(hConn: ConnHandle);
  285. PROCEDURE CMReset(hConn: ConnHandle);
  286. PROCEDURE CMBreak(hConn: ConnHandle; duration: LONGINT; async: BOOLEAN; completor: ConnectionCompletionUPP);
  287. FUNCTION CMRead(hConn: ConnHandle; theBuffer: UNIV Ptr; VAR toRead: LONGINT; theChannel: CMChannel; async: BOOLEAN; completor: ConnectionCompletionUPP; timeout: LONGINT; VAR flags: CMFlags): CMErr;
  288. FUNCTION CMWrite(hConn: ConnHandle; theBuffer: UNIV Ptr; VAR toWrite: LONGINT; theChannel: CMChannel; async: BOOLEAN; completor: ConnectionCompletionUPP; timeout: LONGINT; flags: CMFlags): CMErr;
  289. FUNCTION CMIOKill(hConn: ConnHandle; which: INTEGER): CMErr;
  290. PROCEDURE CMActivate(hConn: ConnHandle; activate: BOOLEAN);
  291. PROCEDURE CMResume(hConn: ConnHandle; resume: BOOLEAN);
  292. FUNCTION CMMenu(hConn: ConnHandle; menuID: INTEGER; item: INTEGER): BOOLEAN;
  293. FUNCTION CMValidate(hConn: ConnHandle): BOOLEAN;
  294. PROCEDURE CMDefault(VAR theConfig: Ptr; procID: INTEGER; allocate: BOOLEAN);
  295. FUNCTION CMSetupPreflight(procID: INTEGER; VAR magicCookie: LONGINT): Handle;
  296. FUNCTION CMSetupFilter(procID: INTEGER; theConfig: UNIV Ptr; count: INTEGER; theDialog: DialogPtr; VAR theEvent: EventRecord; VAR theItem: INTEGER; VAR magicCookie: LONGINT): BOOLEAN;
  297. PROCEDURE CMSetupSetup(procID: INTEGER; theConfig: UNIV Ptr; count: INTEGER; theDialog: DialogPtr; VAR magicCookie: LONGINT);
  298. PROCEDURE CMSetupItem(procID: INTEGER; theConfig: UNIV Ptr; count: INTEGER; theDialog: DialogPtr; VAR theItem: INTEGER; VAR magicCookie: LONGINT);
  299. PROCEDURE CMSetupXCleanup(procID: INTEGER; theConfig: UNIV Ptr; count: INTEGER; theDialog: DialogPtr; OKed: BOOLEAN; VAR magicCookie: LONGINT);
  300. PROCEDURE CMSetupPostflight(procID: INTEGER);
  301. FUNCTION CMGetConfig(hConn: ConnHandle): Ptr;
  302. FUNCTION CMSetConfig(hConn: ConnHandle; thePtr: UNIV Ptr): INTEGER;
  303. FUNCTION CMIntlToEnglish(hConn: ConnHandle; inputPtr: UNIV Ptr; VAR outputPtr: Ptr; language: INTEGER): OSErr;
  304. FUNCTION CMEnglishToIntl(hConn: ConnHandle; inputPtr: UNIV Ptr; VAR outputPtr: Ptr; language: INTEGER): OSErr;
  305. FUNCTION CMAddSearch(hConn: ConnHandle; theString: ConstStr255Param; flags: CMSearchFlags; callBack: ConnectionSearchCallBackUPP): LONGINT;
  306. PROCEDURE CMRemoveSearch(hConn: ConnHandle; refnum: LONGINT);
  307. PROCEDURE CMClearSearch(hConn: ConnHandle);
  308. FUNCTION CMGetConnEnvirons(hConn: ConnHandle; VAR theEnvirons: ConnEnvironRec): CMErr;
  309. FUNCTION CMChoose(VAR hConn: ConnHandle; where: Point; idle: ConnectionChooseIdleUPP): INTEGER;
  310. PROCEDURE CMEvent(hConn: ConnHandle; {CONST}VAR theEvent: EventRecord);
  311. PROCEDURE CMGetToolName(procID: INTEGER; VAR name: Str255);
  312. FUNCTION CMGetProcID(name: ConstStr255Param): INTEGER;
  313. PROCEDURE CMSetRefCon(hConn: ConnHandle; refCon: LONGINT);
  314. FUNCTION CMGetRefCon(hConn: ConnHandle): LONGINT;
  315. FUNCTION CMGetUserData(hConn: ConnHandle): LONGINT;
  316. PROCEDURE CMSetUserData(hConn: ConnHandle; userData: LONGINT);
  317. PROCEDURE CMGetErrorString(hConn: ConnHandle; id: INTEGER; VAR errMsg: Str255);
  318. FUNCTION CMNewIOPB(hConn: ConnHandle; VAR theIOPB: CMIOPBPtr): CMErr;
  319. FUNCTION CMDisposeIOPB(hConn: ConnHandle; theIOPB: CMIOPBPtr): CMErr;
  320. FUNCTION CMPBRead(hConn: ConnHandle; theIOPB: CMIOPBPtr; async: BOOLEAN): CMErr;
  321. FUNCTION CMPBWrite(hConn: ConnHandle; theIOPB: CMIOPBPtr; async: BOOLEAN): CMErr;
  322. FUNCTION CMPBIOKill(hConn: ConnHandle; theIOPB: CMIOPBPtr): CMErr;
  323. {$ALIGN RESET}
  324. {$POP}
  325.  
  326. {$SETC UsingIncludes := ConnectionsIncludes}
  327.  
  328. {$ENDC} {__CONNECTIONS__}
  329.  
  330. {$IFC NOT UsingIncludes}
  331.  END.
  332. {$ENDC}
  333.